package Merlion.util.state;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

public class SalesOperationPlanState implements Serializable{

    private Integer yearInt;
    private Integer monthInt;
    private int salesForecast;
    private int productionPlan;
    private int beginningInventory;
    private int endingInventory;
    private int nWorkingDays;
    private int capacity;
    private double utilization;
    private Collection<Object[]> productQuantityMap; // [Long id ,String name, int quantity]
    private List<SOPBreakdownState> breakdowns; // id, name, ratio, quantity
    private boolean finalized;
    
    public SalesOperationPlanState(Integer yearInt, Integer monthInt, int salesForecast, int productionPlan, int nWorkingDays, int capacity, double utilization) {
        this.yearInt = yearInt;
        this.monthInt = monthInt;
        this.salesForecast = salesForecast;
        this.productionPlan = productionPlan;
        this.nWorkingDays = nWorkingDays;
        this.capacity = capacity;
        this.utilization = utilization;
    }

    public int getCapacity() {
        return capacity;
    }

    public void setCapacity(int capacity) {
        this.capacity = capacity;
    }

    public Integer getMonthInt() {
        return monthInt;
    }

    public int getBeginningInventory() {
        return beginningInventory;
    }

    public void setBeginningInventory(int beginningInventory) {
        this.beginningInventory = beginningInventory;
    }

    public boolean isFinalized() {
        return finalized;
    }

    public void setFinalized(boolean finalized) {
        this.finalized = finalized;
    }

    
    public void setMonthInt(Integer monthInt) {
        this.monthInt = monthInt;
    }

    public int getEndingInventory() {
        return endingInventory;
    }

    public void setEndingInventory(int endingInventory) {
        this.endingInventory = endingInventory;
    }

    public int getnWorkingDays() {
        return nWorkingDays;
    }

    public void setnWorkingDays(int nWorkingDays) {
        this.nWorkingDays = nWorkingDays;
    }

    public List<SOPBreakdownState> getBreakdowns() {
        return breakdowns;
    }

    public void setBreakdowns(List<SOPBreakdownState> breakdowns) {
        this.breakdowns = breakdowns;
    }

    public Collection<Object[]> getProductQuantityMap() {
        return productQuantityMap;
    }

    public void setProductQuantityMap(Collection<Object[]> productQuantityMap) {
        this.productQuantityMap = productQuantityMap;
    }

    public int getProductionPlan() {
        return productionPlan;
    }

    public void setProductionPlan(int productionPlan) {
        this.productionPlan = productionPlan;
    }

    public int getSalesForecast() {
        return salesForecast;
    }

    public void setSalesForecast(int salesForecast) {
        this.salesForecast = salesForecast;
    }

    public double getUtilization() {
        return utilization;
    }

    public void setUtilization(double utilization) {
        this.utilization = utilization;
    }

    public Integer getYearInt() {
        return yearInt;
    }

    public void setYearInt(Integer yearInt) {
        this.yearInt = yearInt;
    }
}
